import { IPSApplicationObject } from '../ipsapplication-object';
import { IPSSysPFPlugin } from '../../res/ipssys-pfplugin';

/**
 *
 * 子接口类型识别属性[utilType]
 * @export
 * @interface IPSAppUtil
 */
export interface IPSAppUtil extends IPSApplicationObject {
  /**
   * 代码标识
   * @type {string}
   */
  codeName: string;

  /**
   * 前端扩展插件
   *
   * @type {IPSSysPFPlugin}
   */
  getPSSysPFPlugin(): IPSSysPFPlugin | null;

  /**
   * 前端扩展插件
   *
   * @type {IPSSysPFPlugin}
   */
  get psSysPFPlugin(): IPSSysPFPlugin | null;

  /**
   * 前端扩展插件（必须存在）
   *
   * @type {IPSSysPFPlugin}
   */
  getPSSysPFPluginMust(): IPSSysPFPlugin;

  /**
   * 功能实体10名称
   * @type {string}
   */
  utilPSDE10Name: string;

  /**
   * 功能实体2名称
   * @type {string}
   */
  utilPSDE2Name: string;

  /**
   * 功能实体3名称
   * @type {string}
   */
  utilPSDE3Name: string;

  /**
   * 功能实体4名称
   * @type {string}
   */
  utilPSDE4Name: string;

  /**
   * 功能实体5名称
   * @type {string}
   */
  utilPSDE5Name: string;

  /**
   * 功能实体6名称
   * @type {string}
   */
  utilPSDE6Name: string;

  /**
   * 功能实体7名称
   * @type {string}
   */
  utilPSDE7Name: string;

  /**
   * 功能实体8名称
   * @type {string}
   */
  utilPSDE8Name: string;

  /**
   * 功能实体9名称
   * @type {string}
   */
  utilPSDE9Name: string;

  /**
   * 功能实体名称
   * @type {string}
   */
  utilPSDEName: string;

  /**
   * 功能标记
   * @type {string}
   */
  utilTag: string;

  /**
   * 功能类型
   * @description 值模式 [应用功能配置类型] {FILTERSTORAGE：搜索条件存储、 DYNADASHBOARD：动态数据看板、 DYNACHART：动态图表、 DYNAREPORT：动态报表、 DRAFTSTORAGE：表单草稿存储、 USER：用户自定义 }
   * @type {( string | 'FILTERSTORAGE' | 'DYNADASHBOARD' | 'DYNACHART' | 'DYNAREPORT' | 'DRAFTSTORAGE' | 'USER')}
   */
  utilType: string | 'FILTERSTORAGE' | 'DYNADASHBOARD' | 'DYNACHART' | 'DYNAREPORT' | 'DRAFTSTORAGE' | 'USER';
}
